/*	Copyright 2007 - Xavier Baro (xbaro@cvc.uab.cat)

	This file is part of eapmlib.

    Eapmlib is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or any 
	later version.

    Eapmlib is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __DATA_H__
#define __DATA_H__

#include "EvolutiveLib.h"

namespace Evolutive {

	class EVOLUTIVELIB_API CData
	{
		//! Methods
	public:
		//! Default constructor		
		CData(void);

		//! Default destructor
		virtual ~CData(void);		

		//! Return the pointer to the data
		void **GetDataPtr(void);

		//! Return the number of parameters
		int GetNumParameters(void);

		//! Returns the name of the data structure
		std::string GetDataName(void);
								
	protected:
					
		//! Attributes
	protected:		
		//! Name for the data structure
		string m_DataName;

		//! Number of containded parameters
		int m_NumParameters;

		//! Pointer to the parameters
		void **m_DataPtr;
	};	
}

#endif // __DATA_H__
